Operator Library: Hardware Platform
该算子表示 CLHS Single Link 配置相机与 VisualApplets 之间的图像数据接口。 该算子从 CLHS 相机接收数据, 并将其馈入图像处理应用程序中。
| 适用于 Hardware Platform |
|---|
| marathon VF2 |
该算子独占使用一个类型为 camera 的资源。 您可以选择采集卡的 port 0 或 port 1 作为图像源。 在 applet 中不能多次使用相同的资源 ID。
该算子始终有一个输出端口 O,即图像输出端口。
添加可选的 GPIO 端口
除此标准输出端口之外,如果您的设计需要,您还可以指定各种可选端口。
CLHS 协议支持脉冲和 GPIO 消息。
在算子实例化期间,将弹出一个对话框:

在这里,您可以定义最多 16 个可选 GPI(通用输入)和最多 16 个可选 GPO(通用输出)的可用性。
如果您将端口可用性设置为“0”(默认),则该算子中将不存在该端口。 如果您将端口可用性设置为 1,则该特定端口将在算子接口上可用。
当由连接的算子更改 GPI 的状态时,将传输 GPIO 状态。 当算子从相机接收到 GPIO 消息时,所有 GPO 都会更新。
参数 Bit Width
链路参数 Bit Width 可以设置为高于或低于相机实际发送的位宽的值:
- 如果您选择较低的值,则每个像素的 LSB 位将被截断,从而仅将 MSB 位传输到应用程序中。
- 如果您选择较高的值,则原始像素将置于传出像素的 MSB 位置。LSB 位将 用零填充。
在这两种情况下,相对亮度保持不变,即白色像素保持白色,黑色像素保持黑色。
添加可选输出端口
此外,您可以(可选)激活两个额外的输出端口:
- 一个输出端口 Output (SyncO)(视频消息的 MultiFGSync 位),以及
- 一个输出端口 Output (HeaderO)。 Output (HeaderO) 提供当前正在处理的视频数据包的标头信息。 该端口以 64 bit 宽度的像素提供标头信息。
输出端口 HeaderO 的结构
在图像数据从输出端口 O 输出之前,会在端口 HeaderO 上输出单个像素。该像素包含视频数据包标头的数据。 输出端口 HeaderO 用于传输有关传入数据的更复杂依赖关系的信息,或者用于通过 applet 的视频 链路对事件做出反应。
输出端口 HeaderO 的结构如下:
| 位置 | CLHS 标头 | 描述 | ||||||||||||||
| [0,2] | ColorID [0,2] | 视频源:目前此部分始终为 0 | ||||||||||||||
| [3,4] | ColorID [3,4] | 数据包类型 0 = 视频(所有其他组合均保留) | ||||||||||||||
| [5,7] | ColorID [5,7] |
Color ID:
|
||||||||||||||
| [8,9] | VideoStatus [1,0] |
行标记:
|
||||||||||||||
| [10,11] | VideoStatus [3,2] |
帧标记:
|
||||||||||||||
| 12 | VideoStatus [4] | 触发丢失。自上一数据包以来,相机无法响应触发请求 | ||||||||||||||
| 13 | VideoStatus [5] | 相机缓冲区溢出 | ||||||||||||||
| 14 | VideoStatus [6] | 用于多采集卡配合使用的 MultiFGSync 同步(另请参阅 SyncO 输出) | ||||||||||||||
| 15 | VideoStatus [7] | 重发标志,设为 0,未使用 | ||||||||||||||
| [16,31] | RowID | 当前行的编号 | ||||||||||||||
| [32,39] | - | 保留,设为 0 | ||||||||||||||
| [40,55] | ColID | 该数据包中第一个像素的列编号 | ||||||||||||||
| [56,63] | AcquisitionSet | 相机可以使用此字节来设置专有信息 |
| Property | 值 |
|---|---|
| Operator Type | M |
| Output Links | O,要在 VisualApplets 内部使用的采集图像数据 GPO[0;15](可选),相机 GPO 的状态(通过 CLHS 交换) GPI[0;15](可选),采集卡 GPO 的状态(通过 CLHS 交换) SyncO(可选),视频包中置位的 MultiFGSync 位(在一个时钟周期内有效) HeaderO(可选),每个视频包起始处一个 64 位宽的像素,包含视频包标头 |
| Link Parameter | Output Link O | 输出链路 GPO[0;15](可选) | 输出链路 GPI[0;15](可选) | 输出链路 SyncO(可选) | 输出链路 HeaderO(可选) |
|---|---|---|---|---|---|
| Bit Width | any | 1 | 1 | 1 | 64 |
| Arithmetic | unsigned | unsigned | unsigned | unsigned | unsigned |
| Parallelism | 任意,参见参数说明 | 1 | 1 | 1 | 1 |
| Kernel Columns | 1 | 1 | 1 | 1 | 1 |
| Kernel Rows | 1 | 1 | 1 | 1 | 1 |
| Img Protocol | {VALT_IMAGE2D, VALT_LINE1D} | VALT_SIGNAL | VALT_SIGNAL | VALT_SIGNAL | VALT_Pixel0D |
| Color Format | VAF_GRAY | VAF_GRAY | VAF_GRAY | VAF_GRAY | VAF_GRAY |
| Color Flavor | FL_NONE | FL_NONE | FL_NONE | FL_NONE | FL_NONE |
| Max. Img Width | any | 1 | 1 | 1 | 1 |
| Max. Img Height | any | 1 | 1 | 1 | 1 |
| CameraID | |
|---|---|
| 键入 | 静态写参数 |
| 默认 | 0 |
| 范围 | {0, 1} |
|
该参数指定使用的相机资源。 此外,该 ID 还将用于将相机通道映射到 applet 端口。 |
|
| PixelFormat | |
|---|---|
| 键入 | 静态写参数 |
| 默认 | Mono10p |
| 范围 | {Mono8,Mono10p,Mono12p,Mono14p,Mono16,Raw8,Raw10p,Raw12p,Raw14p,Raw16, Raw64, B8, B10p, B12p, B14p, B16, G8, G10p, G12p, G14p, G16, R8, R10p, R12p, R14p, R16, BGR8, BGR10p, BGR12p, BGR14p, BGR16, BGRa8, BGRa10p, BGRa12p, BGRa14p, BGRa16, BayerGR8, BayerGR10p, BayerGR12p,BayerGR14p, BayerGR16, BayerRG8, BayerRG10p, BayerRG12p, BayerRG14p, BayerRG16, BayerGB8, BayerGB10p, BayerGB12p, BayerGB14p, BayerGB16, BayerBG8, BayerBG10p, BayerBG12p, BayerBG14p, BayerBG16} |
|
该参数用于指定输出 Pixel Format。 在 RAW 模式下,将忽略来自相机的传输进来的所有行和帧标记。RAW 模式用于支持复杂的链路结构,并且专用于 CLHSSingleCamera 算子。 |
|
| AquisitionFormat | |
|---|---|
| 键入 | 静态写参数 |
| 默认 | 面积 |
| 范围 | {Area; Linescan; RAW} |
|
当此参数设为“Area”时,获取到的第一个数据是一个完整的帧。将忽略在中间开始的帧。因此,第一个视频消息中需要有“Start Of Frame”标记。 当该参数设置为 "Line" 时,首个可用数据将是一整行。中间开始的行将被忽略。因此,首个视频消息中必须包含 "Start Of Line" 标记。由于线阵相机的 "Start of Frame" 和 "End of Frame" 被设为 0,因此它们将被忽略。 当此参数设为“RAW”时,将忽略所有标记(“Start/End of Line”以及“Start/End of Frame”)。“RAW”模式用于支持复杂的链路结构。此模式仅适用于 CLHSSingleCamera 算子。 |
|
| LineSupervision | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | off |
| 范围 | {on, off} |
|
如果此参数设为“on”,算子将监控从相机传入的所有行是否都已传输到小程序(applet)中。 从相机传入的行按升序编号(第 0 行、第 1 行、第 2 行……第 N 行)。该参数可确保不会丢失任何行。例如,如果连接了一个带有一个链路的相机,并且该参数监控到诸如 332、333、335、336 ……的序列,则会抛出错误。 如果相机的链路数多于 1 个,则可以使用参数 RowStep 相应地增加每个链路传入行的步长。例如,如果相机有 2 个链路,链路 0 接收第 0、2、4、6 ……行,链路 1 接收第 1、3、5、7 ……行,依此类推。同样,如果相机有 4 个链路,链路 0 接收第 0、4、8、12 ……行,链路 1 接收第 1、5、9、13 ……行,链路 2 接收第 2、6、10、14 ……行,依此类推。 此外,参数 LineSupervision 会检查完整性:行首 (SoL) 和行尾 (EoL) 必须按正确的顺序排列。将检测到缺失的 EoL 或 SoL,生成错误标志并插入行尾。将插入缺失的行作为较小的行(长度取决于 Parallelism 和位宽),直到检测到连续的两个 RowID 并再次保证行的一致性。 |
|
| RowStep | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1 |
| 范围 | {1, 65535} |
|
2 个 RowIDs 之间的步长。除非使用多通道相机 且行被拆分到各个链路中,否则该值应为 1。 |
|
| SyncFirstLineToFGSyncRequest | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 没有 |
| 范围 | {no, yes} |
|
如果此参数设为 yes,则会丢弃第一个 FGSyncRequest 之前的所有行。仅在 LINE_1D 模式下有效。这会使第一行与第一个外部 FGSyncRequest 脉冲同步。 |
|
| MinimalParallelism | |
|---|---|
| 键入 | 静态只读参数 |
| 默认 | 2 |
| 范围 | [1; 1024] |
|
输出链路 O 能够传输相机最大带宽而不丢失数据所需的最小 Parallelism。 该值取决于当前选定的设计时钟频率。 频率越高,Parallelism 值可以越小。 |
|

上一页

